package au.com.bus4u.service;

import au.com.bus4u.utils.PageData;

import java.util.List;

/**
 * 订单业务层接口
 */
public interface OrderService {

    /**新增
     * @param pd
     * @throws Exception
     */
    public int save(PageData pd)throws Exception;



    /**删除
     * @param order_id
     * @throws Exception
     */
    public int delete(Integer order_id)throws Exception;


    /**批量删除
     * @param DATA_IDS
     * @throws Exception
     */
    public int deleteAll(String[] DATA_IDS)throws Exception;

    /**修改
     * @param pd
     * @throws Exception
     */
    public int edit(PageData pd)throws Exception;




    /**列表(带条件搜索)
     * @param pd
     * @throws Exception
     */
    public List<PageData> list(PageData pd)throws Exception;




    /**通过id获取数据
     * @param order_id
     * @throws Exception
     */
    public PageData findById(Integer order_id)throws Exception;

    /**通过id获取数据
     * @param user_id
     * @throws Exception
     */
    public List<PageData> findByUserId(String user_id,String startTime,String endTime,Integer order_status)throws Exception;

    /**通过订单id获取该订单的状态order_status
     * @param id
     * @throws Exception
     */
    public Integer findStatusById(Integer id)throws Exception;

    /**
     * 确定订单竞拍成功的竞拍人
     *
     * 参数PageData中获取
     *      auction_id      竞拍ID
     *      order_id        订单ID
     *      custo_costs     游客需支付价格
     *
     *      将订单由【竞拍中】改为【待支付】
     *      游客待支付费用保存到订单中
     *      修改竞拍ID 竞拍成功
     * @param pd
     * @return
     * @throws Exception
     */
    public void confirmAuction(PageData pd)throws Exception;



    /**
     * 到项目状态代码表status_code 中获取订单所有状态的数据
     */
    public List<PageData> findOrderStatusCodeList()throws Exception;

    /**
     * 到项目状态代码表status_code 中获取用户会员等级cust_level数据
     */
    public List<PageData> findUserCustLevelCodeList()throws Exception;

    String getEmailByOrderID(String order_id)throws Exception;
}
